package de.mindshareprojects.datawarehouse.shared;

import java.util.Date;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import de.mindshareprojects.datawarehouse.annotation.Header;
import de.mindshareprojects.datawarehouse.annotation.ColumnOrder;

import com.google.gwt.user.client.rpc.IsSerializable;

@PersistenceCapable
public class WebAnalyticsLineItem implements IsSerializable,Cloneable {

	@PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Long key;
	
	@Persistent
	private Long campaignKey;
    
	@Persistent
	private Long advertiserGroupKey;
	
	@Header(header = "PlacementID")
	@ColumnOrder(columnOrder = 10)
    @Persistent
    private String placementID;

	@Header(header = "Description")
	@ColumnOrder(columnOrder = 15)
    @Persistent
    private String description;

	@Header(header = "Creative")
	@ColumnOrder(columnOrder = 20)
	@Persistent
    private String creative;

	@Header(header = "Creative Type")
	@ColumnOrder(columnOrder = 25)    
    @Persistent
    private String creativeType;
    
	@Header(header = "Demand Channel")
	@ColumnOrder(columnOrder = 30)
    @Persistent
    private String demandChannel;
    
	@Header(header = "Marketing Activity")
	@ColumnOrder(columnOrder = 35)
    @Persistent
    private String marketingActivity;
    
	@Header(header = "Marketing Program")
	@ColumnOrder(columnOrder = 40)
    @Persistent
    private String marketingProgram;
    
	@Header(header = "Offer")
	@ColumnOrder(columnOrder = 45)
	@Persistent
    private String offer;
    
	@Header(header = "Partner")
	@ColumnOrder(columnOrder = 50)
    @Persistent
    private String partner;
    
	@Header(header = "Placement")
	@ColumnOrder(columnOrder = 55)
    @Persistent
    private String placement;
    
	@Header(header = "ZielURL")
	@ColumnOrder(columnOrder = 60)
    @Persistent
    private String targetURL;
	
	@Persistent
	private Boolean search;
    
    @Persistent
    private Date creationDate;
    
    @Persistent
    private String country;
    
    public WebAnalyticsLineItem () {
    	this.creationDate = new Date();
    }    

	public Long getKey() {
		return this.key;
	}

	public Long getCampaignKey() {
		return this.campaignKey;
	}

	public void setCampaignKey(Long campaignKey) {
		this.campaignKey = campaignKey;
	}

	public String getPlacementID() {
		return this.placementID;
	}

	public void setPlacementID(String placementID) {
		this.placementID = placementID;
	}

	
	public String getDescription() {
		return this.description;
	}


	public void setDescription(String description) {
		this.description = description;
	}

	
	public String getCreative() {
		return this.creative;
	}

	public void setCreative(String creative) {
		this.creative = creative;
	}

	public String getCreativeType() {
		return this.creativeType;
	}

	public void setCreativeType(String creativeType) {
		this.creativeType = creativeType;
	}

	public String getDemandChannel() {
		return this.demandChannel;
	}

	public void setDemandChannel(String demandChannel) {
		this.demandChannel = demandChannel;
	}

	public String getMarketingActivity() {
		return this.marketingActivity;
	}

	public void setMarketingActivity(String marketingActivity) {
		this.marketingActivity = marketingActivity;
	}

	public String getMarketingProgram() {
		return this.marketingProgram;
	}


	public void setMarketingProgram(String marketingProgram) {
		this.marketingProgram = marketingProgram;
	}
	
	public String getOffer() {
		return this.offer;
	}

	public void setOffer(String offer) {
		this.offer = offer;
	}

	public String getPartner() {
		return this.partner;
	}

	public void setPartner(String partner) {
		this.partner = partner;
	}

	public String getPlacement() {
		return this.placement;
	}

	public void setPlacement(String placement) {
		this.placement = placement;
	}

	public String getTargetURL() {
		return this.targetURL;
	}

	public void setTargetURL(String targetURL) {
		this.targetURL = targetURL;
	} 
		
	public Date getCreationDate() {
		return creationDate;
	}

	public Boolean getSearch() {
		return search;
	}

	public void setSearch(Boolean search) {
		this.search = search;
	}

	public Long getAdvertiserGroupKey() {
		return advertiserGroupKey;
	}

	public void setAdvertiserGroupKey(Long advertiserGroupKey) {
		this.advertiserGroupKey = advertiserGroupKey;
	}

	public void setCountry(String country) {
		this.country = country;
	}

	public String getCountry() {
		return country;
	}
}